#ifndef PLAYER_H
#define PLAYER_H

#include <ouden.h>

//TODO: Put in engine

using namespace ouden;

class CAimMoveLEvent : public ouden::CLocalEvent
{
	
public:
	
	CAimMoveLEvent(Vector vNewAimVector) : m_vAimVector(vNewAimVector) 		{}
	
	void onActivate()
	{
		
		//C(TheGame)Player* pLocalPlayer = static_cast<C(TheGame)Player>getLocalPlayer();
		
		//pLocalPlayer->onAimMove(m_vAimVector);
		
	}
	
private:
	
	Vector m_vAimVector;
	
};

//TODO: Think about where to store global access to Player(s) (and LocalPlayer)
class CPlayer
{
	public:
		CPlayer();
		virtual ~CPlayer();
	protected:
	private:
		
		void onAimMove(Vector vNewAimVector)
		{
			
			//Store the aim vector for shooting calculation
			m_vAimVector = vNewAimVector;
			
			//Move the aim cursor entity to where we're aiming at
			//m_pAimCursor.moveTo(m_pEntity->getPos() + m_vAimVector);
			
			//TODO: Eventually do arc aim cursor sized depending on distance
			// and bullet spray. 
			
		}
		
		//TODO: Entity may need to be a higher level entity such as character
		CModelEntity* m_pEntity; 			//Instance of the player entity that resides in the game world
		CModelEntity* m_pAimCursor; 		//Model entity for displaying the aim cursor
		
		Vector m_vAimVector; 			//Aim vector, defines direction and distance of aim
		
};

#endif // PLAYER_H
